/*
* ===================================================
*
*       Filename:  map.hh
*
*       Version:  1.0
*       Created:  12/09/2011 03:51:44 PM
*       Compiler:  gcc
*
*       Author:  durand_y, <yoan.durand@gmail.com>
*
* ===================================================
*/

#ifndef MAP_HH
# define MAP_HH

# include <vector>
# include "cell.hh"
# include "team.hh"

class Map
{
public:
	Map ();
	Map (int width, int height);
	~Map ();

	void print ();

	//getter && setter

	void set_width (int x)
	{
		this->width_ = x;
	}

	void set_height (int y)
	{
		this->height_ = y;
	}
	int get_width ()
	{
		return (this->width_);
	}

	int get_height ()
	{
		return (this->height_);
	}
	std::vector<std::vector <Cell *> > get_map ()
	{
		return (this->map_);
	}

	static Map& GetInstance ();

	Team& get_team()
	{
		return (*team_);
	}
private:
	int width_;
	int height_;
	std::vector<std::vector <Cell *> > map_;
	static Map* instance_;
	Team* team_;
};

#endif /* !MAP_HH */
